// 获取url地址参数
const urlParams = new URLSearchParams(new URL(window.location.href).search);
let resourceId = urlParams.get('type');
let datas = ''

$(document).ready(function() {
	datas = parseSecretKeyString($('#id').val())
	selectChange()
	userSelect()
	dataCreates()
	checkChange()
	times()
	createCheckChange()
	timeInput()
	$("#period").val(datas.type)
	datas.type === '0' ? $('.expirationDate').hide() : $('.expirationDate').show()
})

/**
 * checked注册事件
 * */
const checkChange = () => {
	$(".all-menu").click(function () {
		let flag = $(this).prop('checked'); // 获取当前全选复选框的状态
		let parentContainer = $(this).closest('.first-check'); // 找到当前全选复选框所在的父级容器
		parentContainer.find('.sublevel-check input[type="checkbox"]').prop('checked', flag); // 将当前父级容器内的所有子复选框设置为与全选复选框相同的状态

		// 检查是否所有子复选框都被选中，如果是，则将当前全选复选框也设置为选中状态
		let allChecked = parentContainer.find('.sublevel-check input[type="checkbox"]').length === parentContainer.find('.sublevel-check input[type="checkbox"]:checked').length;
		$(this).prop('checked', allChecked);
	});

	// 子复选框点击事件
	$('.sublevel-check input[type="checkbox"]').click(function() {
		let parentContainer = $(this).closest('.first-check'); // 找到当前子复选框所在的父级容器
		let allChecked = parentContainer.find('.sublevel-check input[type="checkbox"]').length === parentContainer.find('.sublevel-check input[type="checkbox"]:checked').length;
		parentContainer.find('.all-menu').prop('checked', allChecked); // 更新全选复选框的状态
	});

	// 全部全选
	$(".all").find('input').click(function (){
		let isChecked = $(this).prop('checked');

		$("input[type='checkbox']").prop('checked', isChecked);
	});

	$('.children-checkbox input[type="checkbox"]').change(function() {
		let allChecked = allCheckboxesChecked('.children-checkbox');
		$(".all").find('input').prop('checked', allChecked);
	});

}

/**
 * 数据回显
 * */
const dataCreates = ()=> {
	if(resourceId === '1') {
		// 选择并禁用所有输入框
		$('input[type="text"]').prop('disabled', true);

		// 选择并禁用所有选择器
		$('select').prop('disabled', true);

		// 选择并禁用所有复选框
		$('input[type="checkbox"]').prop('disabled', true);
		$('.submit-search').hide()
	}
	// 获取输入框中的值
	let originalDate = datas?.expirationDate

	// 替换 "T" 为空格，并在后面添加 ":00"（如果没有秒的话）
	originalDate = originalDate.replace("T", " ");
	if (originalDate.split(":").length === 2) {
		originalDate += ":00";
	}

	$("#expirationDate").val(originalDate);

}


/**
 *日期选择器显示隐藏
 * */
const timeInput = () => {
	$("#period").change(function (val){
		$(".expirationDate").hide()
		if( val.target.selectedIndex == 2 ){
			$("#expirationDate").val('')
			$(".expirationDate").show()
		}
		if( val.target.selectedIndex == 1 ) {
			$("#expirationDate").val('');
		}
	})
}

/**
 * 时间控件初始化
 * */
const times =() => {
	layui.use('laydate', function() {
		var laydate = layui.laydate;
		laydate.render({
			elem: '#expirationDate', //指定元素
			type: 'datetime', // 设置选择器类型为日期时间
		});
	})

}

/**
 * 使用人选择器change事件
 * */
const selectChange = () => {
	layui.use(['form'], function () {
		form = layui.form;
		form.on('select(select-filter)', function (data) {
			// 获取选中的选项的 data-school 属性值

			userName = $(data.elem[data.elem.selectedIndex]).text(); // 使用 jQuery 获取选中的文本
			let schoolAddress = $(data.elem).find("option:selected").data("school");
			if(schoolAddress == 'undefined' || schoolAddress == 'null') {
				$('#unitName').val('')
				return
			}

			$('#unitName').val(schoolAddress)

		})
	})
}


/**
 * 数据处理
 * */
function parseSecretKeyString(secretKeyString) {
	// 删除字符串开头和结尾的 SecretKey( 和 )
	secretKeyString = secretKeyString.slice(10, -1);

	// 分割字符串，以逗号和空格作为分隔符
	var keyValuePairs = secretKeyString.split(', ');

	// 创建一个空对象来存储属性和值
	var secretKeyObject = {};

	// 遍历所有键值对
	keyValuePairs.forEach(function(pair) {
		// 分割键值对，以等号作为分隔符
		var parts = pair.split('=');
		// 使用第一个部分作为键，第二个部分作为值
		var key = parts[0];
		var value = parts[1];
		// 将值添加到对象中，去除开头和结尾可能存在的空格
		secretKeyObject[key.trim()] = value.trim();
	});

	// 返回创建的对象
	return secretKeyObject;
}


let userSelect = () => {
	$.ajax({
		type: "GET",
		url: "/sys/user/list?pageNumber=1&pageSize=10&type=1&userFrom=1",
		success: function (data) {
			let {data:{records}} = data
			if(data.code === '0') {
				$("#userId").append('<option value="">请选择</option>');
				records.map((item) => {
					$("#userId").append(`<option value=${item.id} data-school=${item.orgName}>${item.username}</option>`);
				})
				$('#userId').val(datas?.userId)
				layui.form.render('select');
			}

		}
	});
}


/**
 * checks回显事件注册
 * */
const createCheckChange = () => {
	// 监听所有子复选框的变化
		let allChecked = allCheckboxesChecked('.children-checkbox');
		$(".all").find('input').prop('checked', allChecked);
}

function allCheckboxesChecked(container) {
	var $container = $(container);
	var $checkboxes = $container.find('input[type="checkbox"]');

	// 遍历所有复选框，如果有一个是未选中状态，则返回 false
	for (var i = 0; i < $checkboxes.length; i++) {
		if (!$($checkboxes[i]).prop('checked')) {
			return false;
		}
	}

	// 如果所有复选框都被选中，则返回 true
	return true;
}


function update() {

	if( !$("#userId").val() ){
		layer.msg('请选择使用人');
		return false;
	}

	if( !$("#unitName").val() ){
		layer.msg('请输入单位名称');
		return false;
	}

	// if( !$("#period").val() ){
	// 	layer.msg('请选择一个有效期');
	// 	return false;
	// }
	// if( $("#period").val() === '1'){
	// 	if($('#expirationDate').val() === '')  {
	// 		layer.msg('请选择一个有效期时间');
	// 		return false;
	// 	}
	// }

	// let is = false;
	// let ids = [];
	let jsonData = {
		id:$('#secretKeyId').val(),
		userId: $('#userId').val(),
		userName:datas.userName,
		unitName:$('#unitName').val(),
		// type:$('#period').val(),
		// expirationDate:$('#expirationDate').val() * 1 !== 0 ? $('#expirationDate').val() : '9999-12-30 12:00:00',
		remark:$('#remark').val(),
		// secretAssets: ids
	}
	$.ajax({
		type: "POST",
		url: "/secretKey/editSecretKey",
		data: JSON.stringify(jsonData), // 将 JavaScript 对象转换为 JSON 字符串
		contentType: "application/json", // 指定发送的内容类型为 JSON
		success: function(data) {
			if (data.code === '0') {
				layer.msg('修改成功');
				parent.reLoad();
				let index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
				parent.layer.close(index);
				return
			}
			layer.msg('修改失败');
		}
	});
	// $(".model input[type='checkbox']").each(function(index, element) {
	// 	if (element.checked) {
	// 		if(element.value === 'on') return
	// 		let a = {
	// 			allocationId:element.value,
	// 			moduleType:$(this).attr("data")
	// 		}
	// 		ids.push(a);
	// 		is = true;
	// 	}
	// });
	// if( is ){
	//
	// }else{
	// 	layer.msg('必须选中一个资源')
	// }

}

